using System; // pamata bibliotēka
using System.Collections.Generic; // sarakstu funkcijas

class MasterParoles
{
    static void Main(string[] args)
    {
        int garums; // paroles garums
        int skaits; // paroles skaits
        bool simboli; // vai iekļaut simbolus
        bool lieli; // vai iekļaut lielos burtus

        Console.Write("Paroles garums (>9): "); 
        while (!int.TryParse(Console.ReadLine(), out garums) || garums < 10)
            Console.Write("Atļauts tikai skaitlis >9: "); 

        Console.Write("Paroļu skaits (>4): "); 
        while (!int.TryParse(Console.ReadLine(), out skaits) || skaits < 5)
            Console.Write("Atļauts tikai skaitlis >4: "); 

        Console.Write("Iekļaut ciparus un simbolus? y/n: ");
        simboli = Console.ReadLine().Trim().ToLower() == "y";

        Console.Write("Iekļaut lielos burtus? y/n: ");
        lieli = Console.ReadLine().Trim().ToLower() == "y";

        var rnd = new Random(); // nejaušo skaitļu ģenerators
        var saraksts = new List<string>(); // vieta parolēm

        for (int i = 0; i < skaits; i++)
            saraksts.Add(GeneretParoli(garums, lieli, simboli, rnd));

        Console.WriteLine("\nĢenerētās paroles:");
        foreach (var p in saraksts)
            Console.WriteLine(" > " + p);
    }

    static string GeneretParoli(int garums, bool arLieliem, bool arSimb, Random rnd)
    {
        var mazie = "abcdefghijklmnopqrstuvwxyz"; // mazie burti
        var lielie = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; // lielie burti
        var cipari = "0123456789"; // cipari
        var simb = "!@#$%^&*()_-+=<>?"; // simboli
        var kopums = mazie; // sāk ar mazajiem

        if (arLieliem) kopums += lielie;
        if (arSimb) kopums += cipari + simb;
        if (string.IsNullOrEmpty(kopums)) return "";

        var arr = new char[garums]; // vieta parolei
        for (int i = 0; i < garums; i++)
            arr[i] = kopums[rnd.Next(kopums.Length)];

        return new string(arr); // pārveido uz tekstu
    }
}
